import java.util.Stack;

/**
 * Created with IntelliJ IEDA.
 * Description:
 * User:86186
 * Date:2022-07-18
 * Time:15:12
 */
public class Solution {

    public int evalRPN(String[] tokens) {
        //开辟栈
        Stack<Integer> stack = new Stack<>();

        for (String x : tokens) {
            //不是加减乘法
            if (!isFuH(x)) {
                stack.push(Integer.parseInt(x));
            } else {
                int num2 = stack.pop();
                int num1 = stack.pop();
                switch (x) {
                    case "+":
                        stack.push(num1 + num2);
                        break;
                    case "-":
                        stack.push(num1 - num2);
                        break;
                    case "*":
                        stack.push(num1 * num2);
                        break;
                    case "/":
                        stack.push(num1 / num2);
                        break;
                }
            }
        }
        return stack.pop();
    }

    public boolean isFuH(String x) {
        if (x == "+" || x == "-" || x == "*" || x == "/") {
            return true;
        } else {
            return false;
        }
    }
}


    /**
     * 栈的压入，弹出
     */
//    public boolean IsPopOrder(int [] pushA,int [] popA) {
//        if(pushA.length==0||popA.length==0) {
//            return false;
//        }
//        //开辟一个栈
//        Stack<Integer> stack = new Stack<>();
//        int popindex = 0;
//
//        for(int i = 0 ;i < pushA.length ;i++){
//            stack.push(pushA[i]);//先插入
//            //如果满足栈内不为空，和栈顶的数等于popA的index下标，就继续
//            while(!stack.empty() && stack.peek() == popA[popindex]){
//                stack.pop();
//                popindex++;
//            }
//        }
//
//        return stack.empty();
//    }
    /**
     * 括号匹配
     *
    * */
//    public static boolean isValid(String s) {
//        Stack<Character> stack = new Stack<>();
//        for(int i=0;i<s.length();i++){
//            char ch = s.charAt(i);
//            if(ch == '(' || ch == '{' || ch == '['){
//                stack.push(ch);
//            }else{
//                //开始左括号与右括号匹配
//                if(stack.empty()){
//                    //即没有左括号
//                    return false;
//                }
//                char top = stack.peek();
//                if(ch =='{' && top == '}'|| ch =='[' && top == ']' || ch =='(' && top == ')'){
//                    stack.pop();
//                }else{
//                    return false;
//                }
//            }
//        }
//        if(stack.empty()){
//            //左括号未匹配完
//            return true;
//        }else{
//            return false;
//        }
//    }
//
//    public static void main(String[] args) {
//        System.out.println(isValid("()"));
//  }

